﻿//-----------------------------------------------------------------------
// <copyright file="WorkItemDataContract.cs" company="CodePlex">
//     Copyright (c) Doug Holland, CodePlex. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
namespace CodePlex.Diagnostics.Contracts
{
    using System;

    using System.Runtime.Serialization;

    /// <summary>
    /// Represents a Work Item within Microsoft Team Foundation Server which describes either an exception or log entry.
    /// </summary>
    [DataContract(Name = "WorkItemDataContract", Namespace = "http://schemas.datacontract.org/2004/07/CodePlex.Diagnostics.Contracts")]
    public sealed class WorkItemDataContract : IExtensibleDataObject
    {
        #region public WorkItemDataContract()

        /// <summary>
        /// Initializes a new instance of the <see cref="T:WorkItemDataContract"/> class.
        /// </summary>
        public WorkItemDataContract()
        {
        }

        #endregion

        #region public string Description

        /// <summary>
        /// Gets or sets the description of the work item.
        /// </summary>
        /// <value>The description of the work item.</value>
        public string Description 
        {
            get; 
            set; 
        }

        #endregion

        #region public Uri Uri

        /// <summary>
        /// Gets or sets the <see cref="T:System.Uri"/> representing the Work Item within Microsoft Team Foundation Server.
        /// </summary>
        /// <value>The <see cref="T:System.Uri"/> representing the Work Item within Microsoft Team Foundation Server.</value>
        public Uri Uri 
        { 
            get; 
            set; 
        }

        #endregion

        #region ExtensionDataObject IExtensibleDataObject.ExtensionData

        /// <summary>
        /// Gets or sets the structure that contains extra data.
        /// </summary>
        /// <value>An <see cref="T:System.Runtime.Serialization.ExtensionDataObject"/> that contains data that is not recognized as belonging to the data contract.</value>
        ExtensionDataObject IExtensibleDataObject.ExtensionData
        {
            get;
            set;
        }

        #endregion
    }
}